package com.sigmatrix.h5.dao;

import java.util.List;

import com.sigmatrix.h5.entity.FirstLevelQRCode;
import com.sigmatrix.h5.exception.DaoException;
import com.sigmatrix.sc.mongo.common.dao.MongoDao;

/**
 * 
 *@ClassName: FirstLevelQrCodeDao
 *@Description: 一级码表
 *@author MH
 *@date 2017年9月22日 上午9:46:54
 */
public interface FirstLevelQrCodeDao extends MongoDao<FirstLevelQRCode>{
	
	/**
	 *@Title: findFirstLevelQRCodeByQRCode
	 *@Description: 根据qRCode查找企业的一级码
	 *@return FirstLevelQRCode
	 *@author youjun
	 *@date 2017年6月29日 下午9:22:05
	 *@param enterpriseCode
	 *@param qRCode
	 *@return
	 * @throws DaoException 
	 */
	FirstLevelQRCode findFirstLevelQRCodeByQRCode(String enterpriseCode, String qRCode) throws DaoException;

	/**
	 *@Title: findFirstLevelQRCodeByFriendlyCode
	 *@Description: 根据友好码查询企业的一级码信息
	 *@return FirstLevelQRCode
	 *@author youjun
	 *@date 2017年8月8日 下午3:04:57
	 *@param enterpriseCode
	 *@param queryCode
	 *@return
	 * @throws DaoException 
	 */
	FirstLevelQRCode findFirstLevelQRCodeByFriendlyCode(String enterpriseCode, String queryCode) throws DaoException;

	/**
	 *@Title: findFirstLevelQRCodeBySeqNum
	 *@Description: TODO()
	 *@return FirstLevelQRCode
	 *@author youjun
	 *@date 2017年8月10日 下午8:20:41
	 *@param enterpriseCode
	 *@param queryCode
	 *@return
	 * @throws DaoException 
	 */
	FirstLevelQRCode findFirstLevelQRCodeBySeqNum(String enterpriseCode, String queryCode) throws DaoException;

	/**
	 *@Title: update
	 *@Description: TODO()
	 *@return void
	 *@author youjun
	 *@date 2017年8月14日 上午11:01:30
	 *@param item
	 */
	void update(FirstLevelQRCode item) throws DaoException;

	/**
	 *@Title: batchSplitOrFillParentCode
	 *@Description: TODO()
	 *@return void
	 *@author youjun
	 *@date 2017年8月19日 上午11:38:03
	 *@param enterpriseCode
	 *@param operateCodeList
	 */
	void batchSplitOrFillParentCode(String enterpriseCode, List<String> operateCodeList, String parentCode) throws DaoException;

	/**
	 *@Title: findFirstLevelQRCodeListByCondition
	 *@Description: TODO()
	 *@return List<FirstLevelQRCode>
	 *@author youjun
	 *@date 2017年8月21日 下午1:47:02
	 *@param firstLevelQRCodeCondition
	 *@return
	 * @throws DaoException 
	 */
	List<FirstLevelQRCode> findFirstLevelQRCodeListByCondition(FirstLevelQRCode firstLevelQRCodeCondition) throws DaoException;

	/**
	 *@Title: batchUpdateByQrCodeList
	 *@Description: TODO()
	 *@return void
	 *@author youjun
	 *@date 2017年8月22日 下午3:52:09
	 *@param updateFirstCode
	 *@param qrCodeList
	 */
	void batchUpdateByQrCodeList(FirstLevelQRCode updateFirstCode, List<String> qrCodeList) throws DaoException;

	

}
